Ohne mich jetzt mit dem Zeitverhalten und der Servoansteuerung auseinanderzusetzen, dafür müsstest du alle verwendeten Funktionen zeigen, kann ich zumindest auf den ersten Blick sagen, dass du
if (aktuell > alterwert) //aktueller Wert kleiner als Alterwert

{
maximum = aktuell; // Das Maximum ist dann der Aktuelle Wert
postion_hell = t_on; // Hellste Postion ist dann t_on
}

nie wahr werden lässt, da du vorher alterwert = aktuell; setzt. Du meinst bestimmt aktuell > maximum.

Was heißt macht nix?
Soweit ich weiß, ist das Timing bei einer Servoansteuerung recht wichtig. Eventuell solltest du die über einen Timer machen.

sast