If, for example, earning $100 in additional income means a $25 reduction in Obamacare subsidies, you're only getting $75 for your extra work. At the margins, some people will decide that's not worth it, so they'll forego working extra hours. That's the substitution effect. In addition, low-income workers covered by Obamacare will have lower medical bills. This makes them less desperate for additional money, and might also cause them to forego working extra hours. That's the income effect.
This is not something specific to Obamacare. It's a shortcoming in all means-tested welfare programs. It's basically Welfare 101, and in over half a century, no one has really figured out how to get around it. It's something you just have to accept if you support safety net programs for the poor.
It's worth noting, however, that health care is an exception to this rule. It doesn't have to be means tested. If we simply had a rational national health care system, available to everyone regardless of income, then none of this would be an issue. There might still be a small income effect, but it would probably be barely noticeable. Since everyone would be fully covered no matter what, there would no high effective marginal tax rate on the poor and no reason not to work more hours. Someday we'll get there.
The subsidies need to be more generous to people above the poverty line, not less.
Cheers,
Scott.