4 LDR Solar tracker - Uneven reading when exposed to even light

I have tried a correction. By means of a pushbutton you can tell the arduino to calibrate LDRs. You must be pointing to an even light (such as the white LCD area).

    int average = (ldrU + ldrD + ldrL + ldrR) / 4;
    coefUp = (float)(average) / (float)(ldrU);
    coefDown = (float)(average) / (float)(ldrD);
    coefLeft = (float)(average) / (float)(ldrL);
    coefRight = (float)(average) / (float)(ldrR);

And then, measures are corrected by that factor:

  ldrU   *= coefUp;
  ldrD   *= coefDown;
  ldrL   *= coefLeft;
  ldrR   *= coefRight;

The problem is that this coefficients level measurings at one light level, but if afterwards I measure another even light weaker o brighter, readings are not leveled.

Can anybody suggest another correction method more advanced?