How can I connect a shunt resistor whose output voltage range is 5V to STM32F103 whose ADC conversion range is 3.6V?
Ideally you would use a low-side shunt, and perhaps amplify it.  That way you start within the range of the ADC, and potentially map the expected (typically small) voltages seen across the shunt to a meaningful fraction of the ADC range.   

If you must stay with a hide side shunt, a better solution might be a differential amplifier which can remove the offset voltage and multiply, yielding an increased voltage variation ranging up from ground.  You can do this yourself with op-amps, or you can use a chip specifically made for this purpose, such as the INA139/INA169.

Beware too that the STM32F1xx ADC is considered a bit noisy by some - be careful with analog design, shut down unused parts of the MCU during the measurement, and consider software filtering.

Another solution could be to use the INA219, which handles both the high side to low side offset conversion, and also includes the ADC, so that you merely query it over its I2C interface.  Adafruit has a breakout board for this and sample Arduino code you can use to give it a try before integrating it into a design; the board is widely cloned by others (it is an open hardware design) though one should suspect they may come with the lower quality grade of the chip and perhaps a cheaper shunt resistor (but you may end up removing the on-board shunt anyway).



If your system already has a differential amplifier and outputs a 0-5v range, then a divider as Jeff suggests might work, but it depends on the nature of the amplifier output.  Some (such as the INA139/169 mentioned above) use a load resistor to program the output voltage range, if you have such a system what you would probably want to do is calculate a parallel external load resistor which would reprogram the range to match your ADC range.