It's possible, but not easy: you'd need to catch the PELNI ferry from Batam to Jakarta via a whole slew of small islands, which runs once a week or so and is regularly delayed by several days.
Navigating their website will give you a hint of what this journey would entail, but here's a notional route map from 2006:
http://wikitravel.org/upload/shared/...snetz_2006.png