Is there a way to filter out routes I've learned from a neighbour via OSPF? E.G I'm learning a.a.a.a and b.b.b.b but I do not want to have b.b.b.b in my routing table.
you can use distribute-list to avoid a LSA from being installed into routing table, but at same time you can not avoid propagation of the SLA within same area.
Distribute-list should help you acheiving desired result. Details are given in below CCO document.