I wouldn't choose this tack, because I'm not sure the the negative-going signal would not be within the range of allowable input signals on your microcontroller. Note that for the STM32f405 the absolute minimum input for a 5V tolerant pin is \$V_{SS} -0.3\$.
The way this is done is to offset the input signal to be midrange for zero input, attenuating if necessary.
Note in your circuit, the inverting gain is -1 and the noninverting gain is +2.
I see your need for accuracy, but suggest that if you can't handle a factor of two that attenuation would give you, you should be looking at your signal chain, perhaps considering a higher bit A2D.
An alternate method would be to use a precision rectifier to make the signal positive, and a comparator, read on a digitial input, to tell you if the signal is positive or negative. This might be more disturbing to your signal chain than the offset and attenuation.