As the other guys suggested, adding an op-amp as a follower is quite a good idea, but you can do just as well by adding a small capacitor, about 0.1uF.
The ADC has a small internal sample capacitor which is charged up to the input voltage during the sample period.

If you have 2-channel an oscilloscope, it is well worth carrying out the following experiment. Put one channel on the analog input of the ADC (AC coupling, reasonably high gain), and put the other channel on the CLK input to the ADC (DC coupling, 2v/div).
What you may see is that at the sample period, the ADC input droops slightly as the internal capacitor is charged. If the signal hasn't come back up to its normal level by the end of the sample period, then you are not going to get an accurate reading, and will likely also get a noisier reading.
The reason it droops is that you don't have enough current from those high value resistors to charge the internal capacitor during the short sampler period.
You may also see a problem if you are using an amplifier with high gain as the ADC input (for example in strain gauge applications). The sudden appearance of the cap can cause an instability in the OpAmp, which will appear as a little blip:

You have two options, firstly you can lengthen the sample period, as I have done in the image above. This is actually very easy to do, because the sample period can be placed between two consecutive SPI bytes, so the pause comes naturally.
#define SPI_XCEIVE(out, in) {SSPBUF = out; while(!(SSPSTAT&0x01)); in = SSPBUF;}
typedef union
{
int16u word;
int8u byte[2];
}union16;
union16 mcp_result_union = {0};
void mcp320x_read(int8u chan) __wparam
{
overlay int8u control_byte_0;
control_byte_0 = B8(00011000) | chan; // Set up control byte:
// b4 = start bit
// b3 = single ended
// b2:0 = channel number
SPI_ChipSelect(MCP320x_CS_PORT); // BEGIN
SPI_XCEIVE(control_byte_0, control_byte_0); // Send control byte. Ignore the return value.
SPI_XCEIVE(0, mcp_result_union.byte[1]); // Get the sample back. Put it straight into its destination.
SPI_XCEIVE(0, mcp_result_union.byte[0]); // Get the sample back. Put it straight into its destination.
mcp_result_union.word >>= 1; // Shift the sample into the correct position
mcp_result_union.word >>= 1; // (doing it in two stages is actually faster)
mcp_result_union.byte[1] &= 0x0F; // and mask off the unused bits.
SPI_ChipDeselect(MCP320x_CS_PORT); // END
}
Alternatively, you can simply add a small capacitor between the ADC input pin and ground. This will act as as local charge supply which will prevent any noticeable signal droop during the sample. This way, you should be able to have pretty high value resistors.
If you want to save even more power, then think about the ADC sample rate. If it's very slow (say once a second), then you might consider powering down the whole ADC during this period. Make sure to check the datasheet for the required power on timing.