John,
Your description is very good and allows me to draw a good diagram. Firstly I'd say that to include the capacitor across VREFL & VREFH would be a very good move. For test, and if the layout permits it, attaching just about any capacitor, across here would be interesting. The ideal being the recommended 100nF part, surface mount X7R in the smallest geometry. A leaded part may be easy for test.
Looking at the diagram your bad value of about 14000 doesn't really tally with the circuit configuration so it's not like the open drain output is being unexpectedly switched unless it's being sampled as the ADC input descends. If the 14000 value is consistent then this is also interesting. If it were random then probably less interesting.
Be aware that the transient response of the input network is fast enough that it can settle to any value within 1 sample period at 100Hz sample rate. So it could easily respond to noise on the 3v3 rail. Increasing the 39nF cap would damp this but making it large might back power the ADC input on MCU power down. For investigation though making this say 470nF might also reveal something.
If the VREF cap doesn't help, as you're software John, the next suggestions may be of interest......
1) When the bad value appears in the stream, does it go GOOD,GOOD,GOOD,BAD,GOOD,GOOD,GOOD..or does it go
GOOD,GOOD,GOOD,A_BIT_BAD,BAD,GOOD,GOOD,GOOD ? Or something different?
The first makes me thing of a software glitch. ie the ADC values are always good, just that one gets corrupted every so often. The second makes me think of a hardware glitch being digitised.
2) As the problem is so intermittent, and if you have access to one, hook up a digitising scope to the ADC input, 3v3 rail and VREFH. Include in the software some code that produces a pulse on a spare MCU output to trigger the scope with when something bad appears internally. Take care that the scope probes ground leads are short and connected local to the VREF & ADC input circutry. Short stubby ground leads are good. That might help you draw a line between an internal and external problem.
3) If no scope then reconfigure the code to not use interrupts. The idea being to remove anything that might be glitching the ADC process. Or stop any PCB circuit loads being switched.
Hope that helps.