The speedometer head (or gauge) needs to be cleaned and rejeweled. Take it out and take it to a speedo shop. They can clean and rebuild it for you. Older speedometers wear out the permanent magnets inside, they need to be replaced. Sounds like your odometer needs to be looked at too. It doesn't cost that much to have it fixed.