Chemicals to clean natural stones
Removing all of the debris from the stones without damaging them can be difficult, the following is what I've done in the past to clean geodes with debris and deposits.  Your mileage may vary, especially since we don't know exactly what is on your stones.


Soak the stones in soapy water for a day or so, then scrub them thoroughly with a stiff brush to clean dirt and most debris from them.  Be cautious if the stone has delicate structure that you're trying to preserve.  If some debris remains that appears to be washable, you can try scrubbing with a toothbrush and toothpaste to get rid of it.
If the stone is acid safe, soak it in vinegar for a couple of days to dissolve carbonate deposits.  You can check to see if it will react with vinegar by adding a few drops of vinegar to the stone's surface and waiting.  If it hasn't started bubbling within 10 minutes or so, it should be safe.
If the stone has rust deposits and is acid safe, you may be able to remove them with something like CLR Rust Stain remover.  If you need to go this route, skip the vinegar step, as this will also clean carbonate deposits.
Finally, it's possible that your crystal has something like granite attached.  If that is the case, nothing practical, short of cutting it off, is likely to clean the crystal.


Once you've got the crystal to the cleanliness you're happy with, you can polish it with powdered polish and a cloth, given time.

If instead of nice, angular crystals you're just trying to produce something like a smooth, rounded stone, after cleaning with water you can use a series of sandpapers (start at 60-80 grit and work up to ~400 grit) and polish to gradually smooth, then polish the stone by hand.  This will clear away any deposits, but it will also change the surface of the stone itself.  That might be acceptable to you if you've got something like a quartz river rock, and it will make a very nice end product.  Take care to keep the stone wet while working, you don't want to breathe in rock dust if you don't have to.