Crank angle during cycling conversion
Since you have a sine wave (roughly), you can compute the angle as follows:

Normalize the waveform to +/- 1.0. Let's call this signal x(t).
Compute arcsin(x(t)) of the normalized waveform

This would yield the angle. The problem you might run into however is that computing arcsin on every sample may add too much delay. Same thing with normalizing the waveform to unity.
Instead, you could normalize to a convenient signed binary range (-1023 ~ 1023, say) and use a lookup table. Note that you can exploit symmetry to make the lookup table smaller.
If your waveform isn't a perfect sine you could characterize it vs. a sine and make adjustments to your lookup table. That's something you couldn't do with arcsin(x(t)).