if i understand the code it is this part:
if cont >140 and cont<149 //store data at the end of the 90 sec cool period
{store ADC;
}
assuming that store ADC does the summing it will be called when cont = { 141,142,143,144,145,146,147,148 } so eight times. and a bit later you divide it by ten. that will make your outcome lets say 20% smaller than it should be, or said differently, the real average is 25% greater.
if cont > 139 and cont < 150 //store data at the end of the 90 sec cool period
{
store ADC;
}
That 20% smaller value goes into the rest of your formula so it will be incorrect too