The spikes are interesting as I would think the voltage of the O2 would be somewhat slow. It could be noise induced. The ADC should be oversampling to get the lowest noise and highest resolution.
On the other hand the ADC may be performing a successive approximation for a fast value and the spikes are just an artifact of this conversion.
I'd love to spend some time with a oscilloscope and see how the PWM shifts with AFR.
You can come over and borrow the car whenever you like to do some testing.