Using Oxalic Acid as a Rust Remover
Oxalic acid is usually marketed as wood bleach, however it also has excellent rust removing properties. Oxalic acid reacts with the rust (iron(III) or ferric oxide or hydroxide) to form ferric oxalate, which is soluble in water.

You begin by mixing Oxalic acid in a large tub of water to make a solution of around 5% (50g per litre), and soak the parts for 12-36 hours. You can then simply wipe the parts free of the rust every now and again with a soft, non-abrasive pad or cloth.
To finish, rinse the parts off to get rid of any ferric oxalate which could still be on the metal, and coat with some sort of rust proofing to prevent rusting in the future.
The pitting (the damage the rust has caused) will be left on the metal, but you have not added any extra scratches or other damage to your metal.
Oxalic acid can be harmful to your skin, so I would recommend using appropriate protective equipment, for example gloves and safety goggles, when mixing the solution.