I hear native German speakers respond to a danke with bitte as often as with gerne.
Is there a semantic difference between the two of them? Or a usage rule behind the choice? Is one more polite than the other?
"Bitte" is the "standard" answer to "Danke".
"Gerne" is short for "Gern geschehen!". According to the Duden, "gern" means
mit freudiger Bereitwilligkeit, Vergnügen
It therefore implies that the speaker was happy to help or do a favor ... and it all sounds more polite.
With a quick search I found this (it's a bit tongue in cheek, but he's quite well known as a linguist): http://bastiansick.de/kolumnen/fragen-an-den-zwiebelfisch/bitte-danke-bitte
The author argues that "Bitte" is short for "Ich bitte Sie, das war doch selbstverständlich!" or similar sentences (maybe "Oh please, that was nothing!" in English). Here, you do not accept the gratitude, in your view you did nothing that would require it.
Answering with "Gerne" is noted as a new trend, mainly because people didn't understand the first option anymore. There you accept the gratitude, but express that you liked to do the action, so it was no problem for you.
So in conclusion, "Bitte" may be a bit more old-fashioned, but also more polite in theory.