Had the same problems along with a very loud sound while driving...it turned out that it required more than lube... the gear was shot, so we disconnected...now I have to guess how fast I am going!
Remove the inner cable and soak it in solvent to remove all old lube. Clean the old lube from the ID of cable housing. Relube the inner cable with a mix of light oil and graphite, and reassemble the cable to the speedo head, and turtle.
I had a similar problem with my 46 merc, removed the speedo gauge and lubed it with a few drops of oil,there is a small lead plug that needs to be removed to do it,that fixed the problem
If the cable isn't the problem there is a good chance the bushings in the speedo have worn to the point where the drum that the needle is attached to is contacting the spinning part that makes it work. I forget which side has the magnet but basically there are 2 parts that are very close to each other and when the bushings get worn, they can make contact and the needle will jump. I think this possibility is what the #2 post was probably alluding to.
I don't know what speedometer you have or for what car but they are mostly all rotating magnet with a drag cup as deuce roadster mentioned. Sometimes lubricating the magnet rotor shaft will do the trick and sometimes it won't. Many of the old Ford types have a way to access the oiler wick for that shaft but not all do. There are folks that rebuild speedometers of all types out there but I don't know who to suggest. It helps to know make & model plus any info about the subcontractor that originally made it can help too. Several companies made them for Ford back in the day.