Ich würde einen Schwimmer benutzen. Wenn man die Mechanik ordentlich hinbekommt, sollte das gut gehen.

Was noch geht: Tischtennisball in ein Rohr, was mit dem Zylinder verbunden ist (Füllhöhe = Ballhöhe), und dann von oben mit einem IR-Entfernungssensor den Abstand zum Ball bestimmen. Dann hast du keine Probleme mit Reflexion und unebenheit der Oberfläche.