Arriving at a good microprice is one of the main preoccupations in the HFT and short-term quantitative trading industry. No answer here will be competitive with these more sophisticated micropricing models.
However if you want something that gives decent predictions (but won't make money after slippage and fees), use either of these two, or some weighted combination of the two:
P = (best_bid_volume * best_ask_price + best_ask_volume * best_bid_price) / (best_bid_volume + best_ask_volume)
P = last_trade_price
I know you mentioned bid-ask bounce as a significant problem, but for most applications (and certainly for prediction), it isn't. The last traded price is highly suggestive of future deltas. If you actually measure this, you will see. Either of these will be significantly better than midprice.
Note that these predict deltas in the midprice, $ln(mid_{t+1}/mid_{t})$, which is often the most directly actionable in terms of market taking and therefore the most relevant for market taking strategies.