How can I improve this for more accuracy at lower RPM?
Count for a longer time.
You simply can't get around the basic counting error (+/- sqrt(N) out of N counts for a typical random process). That is a fundamental principle of sampling and counting statistics.