Yeah, this is a tricky situation at times because various devices have different roaming thresholds. Not sure what kind of client devices you have, but Apple publishes their roaming criteria, for example. But even Apple has differing candidate selection criteria based on band and signal level.
My recommendation is generally the KISS approach. By keeping it simple and starting with turning power down methodically on each AP, you can generally achieve a pretty acceptable outcome. If you have a device that gives real-time (or very close to it) signal/noise level feedback, then take that device around your dwelling and check (and tune!!!) signal overlap between your APs at your primary usage spots. Too often people leave AP power cranked up as high as possible thinking more power == more speed (or some fallacy like that). I get where people think more power == more range, but TX power from the AP is only half the equation, so to speak. And a long range, but weak signal with high noise is not going to be very useful.
If after that, your clients still aren’t roaming in the way you expect or desire, then move toward the steering tools (dawn or usteer). IMHO, Dawn “feels” heavier on my APs, so I’ve gravitated toward Usteer. But, with either tool, you can make an acceptable situation worse if you simply install them and walk away. They’re not magical, one-click fixes that I often see people think. If you don’t take the time to really learn and understand each setting, the solution will be sub-par at best and counterproductive at worst.
Again, this is all my opinion on approach, but is grounded in countless hours (across many days, weeks, months, etc) of experience and trial & error.