Das Problem ist, dass du letztendlich deinem Sprite immer nur eine neue Position gibst. Du musst deinem Sprite eine Geschwindigkeit zuweisen, und die musst du dann zufällig verändern. Dadurch wird sich die Position nicht so zappelnd, sondern etwas gleichmäßiger ändern. Zusätzlich könntest du auch noch eine Beschleunigung hinzufügen und nur die zufällig ändern, könnte noch etwas "realistischer" werden.
Oh, ich überlas noch, dass sich das Sprite von oben nach unten bewegen soll. Auch das kein Problem, denn die Y-Komponente der Geschwindigkeit muss halt immer positiv sein. Die X-Komponente kann sich ja weiterhin so verändern wie oben beschrieben.
Soll das sowas wie ein Schneeflöckchen werden?