Yes, I know of several traditional finishes that can give them a more uniform or homogeneous appearance...
The patina of the rust is actually aesthetically pleasing to some folks, yet the "dry look" and lack of uniformity is often not as becoming, nor does it arrest the oxidation process from further degradation the metal.
I would suggest doing test areas to see if you like the look. Some methods can "darken" the metal in a fashion that is not desired by some. Flax oil (linseed) as well as other "drying oils" are a wonderful treatment method. Note, this is not the type of oils you purchase at big box stores and most paint centers, but actual food grade pure oils.
The next are traditional mineral paint ($$$), lime washes mixed with oil and even milk or tempera paints can work as well. All will age differently depending on slope of roof and location. The all age in a more traditional way...slowly over time give the "aged" affect that some like.
The oil alone method is the easiest to facilitate and reduce as desired.
There are acid wash methods, and other similar methods to above that I won't get into, as they are simply not for the DIYer.
Otherwise you will need to chemically strip the rust and then paint. Just remember to stop the oxidation completely, or you will have rust stains showing through the paint in short order. Another option would be to stretch landscape fabric over it. It will have to be replaced every few years (not unlike paint, but probably shorter life cycle.)
An off the wall thought. Put in gutters/planters and grow a vine plant over the metal. Might have to give it some monofliiment fishing line to grab onto, but a green roof looks nicer (some months) than a tin roof.
Eastwood Rust Converter stops residual rust, and turns it into a black, protective, ready-to-paint coating, without sanding Eastwood's own high-tech formula converts rust into a protective polymeric coating that's ready to go as a primer, and is compatible with most top coats.