That's another problem. You can lower dynamic impedance using a capacitor, i.e. 100nF. It gives energy for charging fastly the input capacitance.
The problem I encountered can't be solved using a capacitor. I don't know exactly why, but also with a low impedance source if I make a reading every 10 sec. values are not stable. If I do a fast loop, i.e. until I exit pressing a pushbutton, values are exactly the same. If I read two times every 10 sec., the second readings are exactly the same. It works...
If you search, you can find someone making many readings, more than two. I've found that the second reading is already good.
I also looked at the Arduino analogRead() code: it doesn't do anything strange. It's the processor. It could be that they made the reading very fast, too fast for a stable value.