In principle, you could use anything as a counterweight, if it’s far enough out, in much the same way that you can counterbalance anyone on a teeter-totter. But you’ll get the best results from something absolutely huge, like a captive asteroid, much, much larger than the ISS.
And even if you’re completely confident in your equipment, there’s still good reason for getting into low-Earth orbit first, and then boosting from there. There are different properties which make one rocket engine “better” than another. One rocket engine might have higher thrust than another, while another might have a higher exhaust velocity.
High exhaust velocity is good, because it has a very strong impact on the efficiency of the engine: The faster your exhaust, the less propellant you need to achieve a given change in velocity (also called “delta-V”). But in order to take off from a planet, you absolutely need high thrust: Certainly greater than the weight of your vehicle, and ideally much greater, or you’re just wasting a bunch of energy on fighting gravity.
And in practice, there’s often a tradeoff between these two, for rocket engines. At one end are things like ion engines, with extremely high exhaust speeds and extremely low thrust, but even short of that extreme, with normal chemical-burning rockets, there’s still usually a tradeoff. So you use one (or more) set of engines, with high thrust, to get you into orbit, and then once you’re in orbit you can use a different set of engines, with high exhaust velocity, to get you from orbit to wherever you’re going.
The short answer is that low orbit takes half the energy of escaping, and energy is proportional to the square of the velocity. But that just pushes the question back one step, to why low orbit takes half the energy of escape… I think a proper explanation of that would really require calculus, but maybe someone can come up with a way around that.