There are two common reasons for uneven color results: water temperature and resists.
If your water cools before the dye particles have had enough time to bond to your fiber, you may be left with excess dye in the water and possibly uneven color on your fiber. Possible reasons for your water cooling too fast are that it wasn't hot enough to begin with, or that you were using a vessel (like a metal bowl, plastic bucket, or similar) that doesn’t retain heat as well as a glass jar. Alternative vessels benefit from some form of insulation to help retain heat. Ideas for insulating alternative dye vessels might be wrapping it in old towels, putting some kind of lid on it, or keeping it inside a cooler chest.
A stainless steel pot on the stove works well as long as you monitor the temperature of the water and apply (or remove) heat as needed through the dye process.
The other common reason for achieving uneven dye results is the presence of resists. Resists are places in your fiber where the water and dye cannot travel freely. Felted fibers are susceptible to resisting. If you are dyeing a larger piece like a sweater, especially if it is a pre-loved sweater, it is almost certain there will be subtle resists near the seams, underarm, or neckline.