MCP3008 reading wrong values
While the data sheet isn't ideal for this particular calculation, ADC's have an input resistance, and it is very likely that the high source impedance because of the 100K resistors is forming the high side of a voltage divider, causing some attenuation of your input signal.

It is also possible that the high source impedance is causing a slowdown of the charging of the sample and hold capacitor, and the sample is completed before the settling time is reached.

My bet is the former.