Calculating phase with noninteger periods of a sinusoid
Do an fftshift (rotate the input vector by N/2) before doing the FFT.  Or for a phase measurement at a fixed point in time, start sampling the data earlier so the N/2 time sample in the FFT input vendor is at the time point where you want the measurement, and then flip the sign of the phase of every other bin of the FFT result (the odd numbered ones).  This will move the phase reference point to the middle of the data window, where an input sinusoid will not have a discontinuity in phase that changes with frequency.  This also allows interpolation of phase between FFT result bins.

The evenness/oddness ratio, and thus the FFT phase, does not change with frequency when a sinusoid's phase is referenced to (for example both generated at and measured with respect to) the center of the FFT aperture.