You can reduce the amount of noise generated by the MCU itself by telling it to enter ADC Noise Reduction sleep mode. This will turn off the CPU, I/O, and synchronous timers (which will disrupt delay() et alia) while still allowing the ADC and other critical functions to run. A no-op ADC interrupt will allow the device to wake from sleep once the conversion has completed.