My own sense is that the terms often overlap and that the differences are often fairly subtle.
One difference is that "refutation" signals an agonistic form of argument where "counterargument" can signal more cooperative forms of argument. Imagine that two people are arguing over legalization of marijuana. A debate might go:
A: I don't want my kids taking drugs. Therefore we should keep marijuana illegal to keep our kids safe from it.
B: It's easy to refute that by looking at some facts about marijuana use.
C: I agree with your concern about keeping our kids safe and preventing them from abusing drugs. On the issue of whether keeping marijuana illegal helps with that, there is a counterargument that criminalization hasn't been effective.
While B is offering a refutation, saying that A is simply wrong, C is suggesting that there are arguments and counterarguments we need to consider and that it isn't a simple and clear cut issue. C's approach is more likely to be convincing and effective because it doesn't treat A like an idiot but acknowledges the validity of some of A's concerns.
The term "counterargument" normally refers to a single argument that contradicts another single argument but a refutation can argue against a larger work consisting of many parts. You might refute Creationism by offering a counterargument against a specific way in which a creationist dates fossils.
Finally, in classical rhetoric, a counterargument is a logical structure and a refutation is fourth of the six parts of an oration, coming between the confirmation and the peroration.