Generally it's the cables. How long did the bike set before you started riding it? The grease in the cables gets hard after 30 or so years. I might suggest you remove both the cables and pull out the cores. Use a spray can of carb or brake cleaner. Hold the housing up so it hangs down. Use the red tube to spray the cleaner down the housing. Let it set while you do the other housing.
Now set them aside, On the inner cable clean them off with the same spray and a rag. Inspect for rust. If very rusty you might want to consider replacement.
After you clean and inspect the inner cables I like a light grease. Super Lube by name, I think I picked it up at Harbor Freight, It's a synthetic grease with Syncolon(PTFE), it is in a grey tube.
Anyway a thin coat on both cables except for the last 4-6 inches where they go into the gauges. Any excess can travel up the cable into the gauges. It may not hurt but it might.
Now back to the housings, after the soaking and setting, Spray more cleaner down the housings, You want the cleaner to come out the bottom clean.
Once clean let dry. Blowing out with an air hose speeds things up. Reassemble and reinstall. A test ride, and see how much this helps.
The gauges them selves have grease in them. It will be in better shape than what was in the cables. They might still wobble a bit but after a few hundred miles the grease softens back up and they start to work better.
If not then you need to take them apart to clean and regrease them. It's not hard to do but must be done correctly to keep from damaging the gauges.
I'm not going into that because it is very well covered in other threads. You might start looking in the XS650 TECH section, found near the top of every page.
Leo