Yeah, that waveform is a bit spiky, try adding a low value resistor in series with D2, in the range 1-10R. Try building the circuit in real life too, the spikiness might not actually be a problem. The detection is faster than the previous circuit.
Or, use another diode and another ADC channel as a temperature monitor and subtract the offset from the main reading. If you need it super accurate, get a matched transistor pair (or a dual transistor array so the dies are in very good thermal contact) and make two diode-connected transistors. Substitute for your rectifier diode and the temperature sense diode.