Human eye blinking is so fast that you barely ever noticed that you've blinked - hence the expression at the blink of an eye - it's perceivably just your eyes going from opened to closed and back to opened again, that's why a few frames work.
Hand waving on the other hand, is much slower, so unless you're waving it inhumanly fast, you'd need a lot more frames to make it smooth looking - consider films are shown at 24 frames per second, phone videos and consoles at 30fps, PC games and newer consoles at 60fps - your 5fps animation will inevitably be jerky.
You've got a few options - one is to actually go the opposite way - and go for 2 frames > starting and ending frame. I'm sure may NVL games does that to indicate a character's physical motions. This is the path I'd recommend
Two, is to try using the rotate property: https://www.renpy.org/doc/html/atl.html ... rty-rotate
. I will most likely look very weird though, at best it'd look like puppetry.
Three, is to create more frames in between - but there's something else to also bear in mind - even at 24fps with still frames, your waving motion will still look odd: films and videos aren't just showing at their specific frame rate, they're also shot at the same frame rate, which means motion blur is introduced to smooth out the picture. That's why you can't shoot a video at 60fps and convert it to 24fps easily.
When Matrix first did bullet time, they had to do computer to digitally introduce frame blending because no motion blur were introduced to the frames, as they used lots of still cameras. You can actually notice the distortion if you watch it carefully.
TLDR; use 2 frames and longer pause in between is your best option