If you sample at the 1ms rate will you lose 640 Hz alternator events, or will you (I hope) get a series of true or false readings? (with a 750 Hz signal you would get "1,1,1,0,1,1,1,0..." with 500 Hz signal "1,0,1,0...", with 250 Hz "1,0,0,0,1,0,0,0..." and so on).
In that case, use the readings to increment a counter and read/clear (say) once per second. This will give you a freq resolution of 1 Hz. Or feed these 1/0 events into an IIR filter, scaled to essentially convert a duty-cycle into a frequency. It doesn't have to be IIR, but that's easy.