`middle[li_List] := 
 Part[li, Union@Through[{Floor, Ceiling}[(Length@li + 1)/2]]]`

I wouldn't do it this way, but just for fun:

`mid[li_List] := li[[Nearest[Range[len = Length@li], (len + 1)/2]]]`