Figure breaks listing, how to avoid that?

The exact positioning of "floats", such as tables and figures, is one of the more mysterious procedures that LaTeX performs. You don't mention what kind of listing you're performing, but I'll assume it's either an enumerated or an itemized list. You do mention that you use [htbp] as the positioning option; the first element, h, stands for "here," i.e., LaTeX may be taking you seriously and is placing the float right where the float's code occurs.

In your case, i.e., in the presence of an itemized or enumerated list, a promising first step towards obtaining a pleasing float placement might be to insert the \begin{figure} ... \end{figure} code after the end of the list. Try this at first without providing a positioning option (such as [h]). If this doesn't generate a satisfactory outcome, provide either the [t] or [b] positioning options.

Finally, do note that fine-tuning the exact placement of float materials should generally be performed only after the rest of the text of the document is more or less final. Otherwise, you may have to redo your work all over again after you change the text here or there.