If you withdraw now and the offer you're expecting doesn't come through for whatever reason, you've withdrawn from the alternatives that were most advanced. You could go back to them and say "um, could we restart that?", but you'd look bad. So you're giving up what might be your #2 choice on the promise of #1, and if #1 doesn't happen you're going to have to pick up with companies that were less promising. That's a lose for you. Further, as TheEvilMetal pointed out in a comment, that #2 might turn out to be your #1 if they make you an even more compelling offer before the other company gets that written offer together.
If you withdraw now and the offer you're expecting does come through, then they will have wasted some time. Not a lot of time if you're just talking about a reference check; in my experience that's half-hour conversations with two or three people. A company that is hiring expects to spend a lot of time on candidates who they don't ultimately hire -- because they decided against you, because you took another offer, because you and they couldn't agree on the package, because of a family issue, or other things. Spending time in pursuit of candidates who don't work out is part of the cost of doing business. You didn't accept an offer (causing them to stop looking) and then withdraw; companies, like candidates, keep all options open until everybody's signed an agreement.