Keeping the sine wave in it's unrectified form and using a zero-crossing detector is certainly favourite.
Having said that, detecting the *exact* zero voltage is actually quite difficult, as all semiconductors have some kind of minimum threshold voltage (p-n junction or similar).
A lot depends on the precision required in your application - one method which comes to mind is to trigger using identical voltages on either side of the zero voltage point - using zeners or comparators - then simply divide the count between these trigger points to determine the exact moment of zero voltage, and use this as an counter offset.
If such precision isn't warranted, then use the largest voltage sinewave available, where semiconductor-induced zero-crossing errors will have minimum effect.
Colin