Steam engines have the potential to be quite efficient, though getting such efficiencies typically requires large heat exchanges and condensers. Interestingly, the first steam engines operated entirely below atmospheric pressure; soon after that came engines which would have low pressure steam (a few PSI) on one side of the piston and partial vacuum on the other. It's interesting that I'm not aware of any widely-used locomotives that used condensers since while doing so prevents use of the steam for drafting the fire, it allows the extraction of more energy from the steam than venting to atmosphere. It also reduces the need to constantly add water.
My personal idea for an improved engine concept would be an engine in which the combustion takes place between input pumps and output pistons. Adding a catalytic convertor here would result in the convertor's heat being turned into useful energy (instead of just waste heat, as on a conventional car engine). Using a two-stage pump before combustion, and two-stage pistons after combustion, with a heat exchanger to transfer heat from the area between the latter two stages to the area between the former two stages should allow for very effective heat utilization, especially when used with a short-chain hydrocarbon such as methane (condensation between the latter two stages would not only be useful for preheating the fuel between the former stages, but would also improve mechanical efficiency by reducing the volume of fluid to be pumped out at atmospheric pressure).
To be particularly efficient, this design would probably require the pumps to be rigged for variable-displacement operation. Such operation should be feasible, however.
BTW, I've read that some work is being done with variable-displacement internal combustion engines. If this pans out, this could yield substantial improvements in efficiency since currently the only way to limit the power output of a large-displacement engine is to either throttle it or use gearing to increase torque and thus decrease RPM; both of these options reduce efficiency. Having an engine run at reduced displacement except when peak power is demanded would avoid these efficiency losses.