The MCU in Arduino has a successive approximation ADC.
It works by briefly taking a voltage sample via a multiplexer into a small storage capacitor to handle multiple input channels with one ADC.
With a high source impedance, the sample/hold capacitor may not have time to fully charge, and thus the sample of the voltage does not resemble the actual voltage.
So the impedance of an analog input pin is not 100 Mohms, as it is momenrarily charging a 14pF capacitor with 1kohm series resistance, and there can be current in or out of the pin.
Therefore the source impedance must be low enough to charge the sample/hold capacitor to within 0.5 ADC counts during the sample time.
Assuming the MCU on your Arduino is an AVR, the ADC specifications say it works best when the source impedance is 10k or less. It seems that your sensor is having a high output impedance.
Also if the sensor output cannot handle the gulps of periodic sampling capacitor charging, it might become unstable and exhibit ringing when the empty capacitor is suddenly connected for charging.
The same is basically when you do have a filter capacitor at the AVR input to have low enough short-term AC impedance, so you can take one measurement without much affecting the value. But if the filter cap is charged by a 1 Mohm resistor, it will still have a high long-term DC impedance, so it takes long to charge the capacitor back to original value, so taking measurements too often will slowly discharge the filter capacitor.
So there are many reasons why analog measurements made with Arduino won't work when compared to a multimeter. The Arduino does not have a built in signal conditioning and buffering like a multimeter has. The required analog input stage should be built between sensor and MCU.